#lang sicp

(define (get op type) +)
(define (set op type proc) 'done)


;; a.
;; need to attach each of divisions' files with a tag that is a unique tag for others
;; these tags must be supplied to headquarters, also a method to retrieve respective files by name
(define (get-record name file)
  ((get 'get-record (get-tag file)) name)) 




;; b.
;; structure of these records is same in same division
;; we only need retrieve a record by a identifier given, use respective division's specific method
;; record should be attached a tag of division
(define (get-salary record)
  ((get 'get-salary (get-rag record)) record))



;; c.
(define (find-employee-record name files)
  (if (null? files)
      #F
      (let ((res (get-record name (car files))))
        (if res
            res
            (find-employee-record name (cdr files))))))


;; d.
;; attach tag for file and each record，and give tag and own methods

